在了解程式之前 一定要先了解程式是怎麼交給電腦運作的,我們先從認識程式語言開始:
程式語言的基礎分類如下
高階語言 == (python,java,c++…)
低階語言 == 組合語言(assembly)
機器語言 == 2進制代碼 人類看不懂
何謂寫程式,寫程式是寫讓人看得懂的 因為真正的01機械碼是看不懂的 但如果要讓機器看得懂 就必須要先『翻譯』給電腦看。
而不同語言有合適的翻譯方式 這就取決於不同程度的語言
其實低階語言與機器語言的距離其實很近 是一種與硬體有密切關係的低階語言 像機械碼的000011 就相當於組合語言的add(加) 算是一種直接對應(但不是直譯)的手段,這就是它還可以叫彙編的原因 把全部程式碼一起翻譯。所以,組譯 基本上就是給組合語言翻譯用的
...................................................................
為何用虛線分開呢? 因為直譯與編譯才是給高階語言用的 而翻譯方式就不是作對應那麼簡單了 而是把它打散(類似加密)或按照機械碼的語法
這種方法其實跟真正的翻譯員有點像 就是把聽到的語言翻譯成另一人看得懂的 無法一口氣把全部翻譯出來 而且因為此特性加上還需要一個程式替他邊執行邊翻譯 所以速度是最慢的。常見的語言有(JavaScript , Python…)
同時也是最多被採用的一種方法 透過編譯器(編譯程式) 把指定程式轉變成機械語言供電腦執行 所以其軟體也不用再通過翻譯機進行翻譯 像電腦上的執行檔 就是編譯完成的程式 如果沒有編譯 則必須還要透過翻譯機才能執行呢~ 常見的語言有(c++,VB…)
直譯和編譯常常依程式需求來選擇需要哪一個 但基本上兩者還是有很大的區別
前面有提到依程式需求;意思是其實只要是高階語言。就沒有所謂的只能直譯或編譯的語言,因為兩者各有優缺點 所以須依使用者需求來看 會被歸類成編譯直譯 只是較常被用到。 就用python來舉個例子: